const express = require("express");
const adminListC = require("./Db/collections/adminList");
const {getMd5, getNowTime} = require("./utils");
const app = express();
app.use(express.json());// 设置响应体的数据格式'
// 添加管理员接口
app.post("/admin",async (req,res)=>{
	// 1- 接收数据
	// 2- 验证数据-（管理员账号是否已经存在）
	//    2-1 存在：给予异常提示---》管理员账号已经存在，不允许重复添加
	//    2-2 不存在：添加管理员-----》给予成功响应----》添加管理员成功
	try{
		const {adminName,password} = req.body;
		// 检查账号是否存在
		const count = await adminListC.count({adminName});
		if(count > 0){
			// 存在相同的账号
			res.json({
				ok:-1,
				msg:"管理员账号已经存在，不允许重复添加"
			})
			return;
		}
		await adminListC.insertOne({
			adminName,
			password:getMd5(password),
			loginTime:getNowTime(),
			regTime:getNowTime()
		});
		res.json({
			ok:1,
			msg:"添加管理员成功"
		})
	}catch (err){
		res.json({
			ok:-1,
			msg:err.message
		})
	}


});
// 获取管理员列表
app.get("/adminList",async (req,res)=>{
	try{
		// 获取到的管理员列表
		const adminList = await adminListC.find({
			sortObj:{
				regTime:-1
			}
		});
		res.json({
			ok:1,
			msg:"获取成功",
			adminList
		})

	}catch (err){
		res.json({
			ok:-1,
			msg:err.message
		})
	}
});

// 完成登陆功能
app.post("/login",async (req,res)=>{
	try{
		// 1- 接收数据
		const {adminName,password} = req.body;
		// 2- 验证数据
		const info = await adminListC.findOne({
			adminName,
			password:getMd5(password)
		})
		// 3- 响应结果
		if(info){
			res.json({
				ok:1,
				msg:"登陆成功"
			})
		}else{
			res.json({
				ok:-1,
				msg:"账号或密码错误！"
			})
		}
	}catch (err){
		res.json({
			ok:-1,
			msg:err.message
		})
	}
})
app.listen(8092,()=>{
	console.log("success")
})